package com.wdciti.sccp.iot.common.aio;

import java.util.Map;

/**
 * for AIO Container Interface. ex. spring webflux, vertx, netty, rxjava...and so on.
 * but BIOManager not yet defined.
 *
 * @author by early
 */
public interface AioEngine {

    /**
     * @return deploy Container status;
     */
    boolean isRunning();

    /**
     * init Container Instance
     */
    void initialize();

    /**
     * deploy endpoints with Container
     */
    void doDeploying();

    /**
     * destroy Container Instance
     */
    void destroy();

    /**
     * get result for endpoints deployment status
     *
     * @return resultMap for each factory
     */
    Map<String, DeploymentResult> getDeployResults();

}
